<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>wickr-crypto-c: wickr_crypto_engine Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">wickr-crypto-c
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-attribs">Data Fields</a>  </div>
  <div class="headertitle">
<div class="title">wickr_crypto_engine Struct Reference<div class="ingroups"><a class="el" href="group__wickr__crypto__engine.html">Wickr_crypto_engine</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Interface to a set of cryptographic operations used throughout the library. Currently the default implementation of this can be found along with documentation in <a class="el" href="openssl__suite_8h_source.html">openssl_suite.h</a> and <a class="el" href="kdf_8h_source.html">kdf.h</a>.  
 <a href="structwickr__crypto__engine.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="crypto__engine_8h_source.html">crypto_engine.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr class="memitem:a2145e35235dc5c5c944f33ea3d2963bd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structwickr__ec__curve.html">wickr_ec_curve_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structwickr__crypto__engine.html#a2145e35235dc5c5c944f33ea3d2963bd">default_curve</a></td></tr>
<tr class="separator:a2145e35235dc5c5c944f33ea3d2963bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a307f7d46b55b1e0a93ce9d9489ba8fc5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structwickr__cipher.html">wickr_cipher_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structwickr__crypto__engine.html#a307f7d46b55b1e0a93ce9d9489ba8fc5">default_cipher</a></td></tr>
<tr class="separator:a307f7d46b55b1e0a93ce9d9489ba8fc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae12855853c05caa473e748a62611d307"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structwickr__buffer.html">wickr_buffer_t</a> *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wickr__crypto__engine.html#gae12855853c05caa473e748a62611d307">wickr_crypto_engine_crypto_random</a> )(size_t len)</td></tr>
<tr class="separator:gae12855853c05caa473e748a62611d307"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabc120effc5248a491b18138f9b74b526"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structwickr__cipher__key.html">wickr_cipher_key_t</a> *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wickr__crypto__engine.html#gabc120effc5248a491b18138f9b74b526">wickr_crypto_engine_cipher_key_random</a> )(<a class="el" href="structwickr__cipher.html">wickr_cipher_t</a> cipher)</td></tr>
<tr class="separator:gabc120effc5248a491b18138f9b74b526"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf7be0d0ca0d9e7a0c5c3b1ec0fd0918e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structwickr__cipher__result.html">wickr_cipher_result_t</a> *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wickr__crypto__engine.html#gaf7be0d0ca0d9e7a0c5c3b1ec0fd0918e">wickr_crypto_engine_cipher_encrypt</a> )(const <a class="el" href="structwickr__buffer.html">wickr_buffer_t</a> *plaintext, const <a class="el" href="structwickr__buffer.html">wickr_buffer_t</a> *aad, const <a class="el" href="structwickr__cipher__key.html">wickr_cipher_key_t</a> *key, const <a class="el" href="structwickr__buffer.html">wickr_buffer_t</a> *iv)</td></tr>
<tr class="separator:gaf7be0d0ca0d9e7a0c5c3b1ec0fd0918e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga459ef821cc40edb5e3c9ce1d571ddc00"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structwickr__buffer.html">wickr_buffer_t</a> *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wickr__crypto__engine.html#ga459ef821cc40edb5e3c9ce1d571ddc00">wickr_crypto_engine_cipher_decrypt</a> )(const <a class="el" href="structwickr__cipher__result.html">wickr_cipher_result_t</a> *cipher_result, const <a class="el" href="structwickr__buffer.html">wickr_buffer_t</a> *aad, const <a class="el" href="structwickr__cipher__key.html">wickr_cipher_key_t</a> *key, bool only_auth_ciphers)</td></tr>
<tr class="separator:ga459ef821cc40edb5e3c9ce1d571ddc00"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa77b1bc373d92d9db9d801bcc4a4d29c"><td class="memItemLeft" align="right" valign="top">bool(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wickr__crypto__engine.html#gaa77b1bc373d92d9db9d801bcc4a4d29c">wickr_crypto_engine_encrypt_file</a> )(const <a class="el" href="structwickr__cipher__key.html">wickr_cipher_key_t</a> *key, const char *sourceFilePath, const char *destinationFilePath)</td></tr>
<tr class="separator:gaa77b1bc373d92d9db9d801bcc4a4d29c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga361b843efc839e30f90ce24c15b1dd27"><td class="memItemLeft" align="right" valign="top">bool(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wickr__crypto__engine.html#ga361b843efc839e30f90ce24c15b1dd27">wickr_crypto_engine_decrypt_file</a> )(const <a class="el" href="structwickr__cipher__key.html">wickr_cipher_key_t</a> *key, const char *sourceFilePath, const char *destinationFilePath, bool only_auth_ciphers)</td></tr>
<tr class="separator:ga361b843efc839e30f90ce24c15b1dd27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga42dfc5b4df166616d962ee4c792ceaf4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structwickr__buffer.html">wickr_buffer_t</a> *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wickr__crypto__engine.html#ga42dfc5b4df166616d962ee4c792ceaf4">wickr_crypto_engine_digest</a> )(const <a class="el" href="structwickr__buffer.html">wickr_buffer_t</a> *buffer, const <a class="el" href="structwickr__buffer.html">wickr_buffer_t</a> *salt, <a class="el" href="structwickr__digest.html">wickr_digest_t</a> digest_mode)</td></tr>
<tr class="separator:ga42dfc5b4df166616d962ee4c792ceaf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga298d2dea6722151c11e04458d3924823"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structwickr__buffer.html">wickr_buffer_t</a> *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wickr__crypto__engine.html#ga298d2dea6722151c11e04458d3924823">wickr_crypto_engine_digest_file</a> )(FILE *in_file, const <a class="el" href="structwickr__digest.html">wickr_digest_t</a> mode)</td></tr>
<tr class="separator:ga298d2dea6722151c11e04458d3924823"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad16b229b7d16cf00d3983c277ee3b88b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structwickr__ec__key.html">wickr_ec_key_t</a> *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wickr__crypto__engine.html#gad16b229b7d16cf00d3983c277ee3b88b">wickr_crypto_engine_ec_rand_key</a> )(<a class="el" href="structwickr__ec__curve.html">wickr_ec_curve_t</a> curve)</td></tr>
<tr class="separator:gad16b229b7d16cf00d3983c277ee3b88b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga87a069bbd3cdf509946e4ca0ca008f8f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structwickr__ec__key.html">wickr_ec_key_t</a> *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wickr__crypto__engine.html#ga87a069bbd3cdf509946e4ca0ca008f8f">wickr_crypto_engine_ec_key_import</a> )(const <a class="el" href="structwickr__buffer.html">wickr_buffer_t</a> *buffer, bool is_private)</td></tr>
<tr class="separator:ga87a069bbd3cdf509946e4ca0ca008f8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac5a36d2a53e06a75a2b818e6a5cc96a1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structwickr__ecdsa__result.html">wickr_ecdsa_result_t</a> *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wickr__crypto__engine.html#gac5a36d2a53e06a75a2b818e6a5cc96a1">wickr_crypto_engine_ec_sign</a> )(const <a class="el" href="structwickr__ec__key.html">wickr_ec_key_t</a> *ec_signing_key, const <a class="el" href="structwickr__buffer.html">wickr_buffer_t</a> *data_to_sign, const <a class="el" href="structwickr__digest.html">wickr_digest_t</a> digest_mode)</td></tr>
<tr class="separator:gac5a36d2a53e06a75a2b818e6a5cc96a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae541acc6433f6f5ffe84382ccd5e4f97"><td class="memItemLeft" align="right" valign="top">bool(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wickr__crypto__engine.html#gae541acc6433f6f5ffe84382ccd5e4f97">wickr_crypto_engine_ec_verify</a> )(const <a class="el" href="structwickr__ecdsa__result.html">wickr_ecdsa_result_t</a> *signature, const <a class="el" href="structwickr__ec__key.html">wickr_ec_key_t</a> *ec_public_key, const <a class="el" href="structwickr__buffer.html">wickr_buffer_t</a> *data_to_verify)</td></tr>
<tr class="separator:gae541acc6433f6f5ffe84382ccd5e4f97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab624f62e1d434c5b8222eabd656feb48"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structwickr__buffer.html">wickr_buffer_t</a> *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wickr__crypto__engine.html#gab624f62e1d434c5b8222eabd656feb48">wickr_crypto_engine_gen_shared_secret</a> )(const <a class="el" href="structwickr__ec__key.html">wickr_ec_key_t</a> *local, const <a class="el" href="structwickr__ec__key.html">wickr_ec_key_t</a> *peer)</td></tr>
<tr class="separator:gab624f62e1d434c5b8222eabd656feb48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga782e0e8786ecf8a55c8ae2aea2f178aa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structwickr__buffer.html">wickr_buffer_t</a> *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wickr__crypto__engine.html#ga782e0e8786ecf8a55c8ae2aea2f178aa">wickr_crypto_engine_hmac_create</a> )(const <a class="el" href="structwickr__buffer.html">wickr_buffer_t</a> *data, const <a class="el" href="structwickr__buffer.html">wickr_buffer_t</a> *hmac_key, <a class="el" href="structwickr__digest.html">wickr_digest_t</a> digest_mode)</td></tr>
<tr class="separator:ga782e0e8786ecf8a55c8ae2aea2f178aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga00c52a816403192af5b21d952265d0b6"><td class="memItemLeft" align="right" valign="top">bool(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wickr__crypto__engine.html#ga00c52a816403192af5b21d952265d0b6">wickr_crypto_engine_hmac_verify</a> )(const <a class="el" href="structwickr__buffer.html">wickr_buffer_t</a> *data, const <a class="el" href="structwickr__buffer.html">wickr_buffer_t</a> *hmac_key, const <a class="el" href="structwickr__digest.html">wickr_digest_t</a> mode, const <a class="el" href="structwickr__buffer.html">wickr_buffer_t</a> *expected)</td></tr>
<tr class="separator:ga00c52a816403192af5b21d952265d0b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5ab29968c993423df83c9f1a3d7e685d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structwickr__kdf__result.html">wickr_kdf_result_t</a> *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wickr__crypto__engine.html#ga5ab29968c993423df83c9f1a3d7e685d">wickr_crypto_kdf_gen</a> )(<a class="el" href="structwickr__kdf__algo.html">wickr_kdf_algo_t</a> algo, const <a class="el" href="structwickr__buffer.html">wickr_buffer_t</a> *passphrase)</td></tr>
<tr class="separator:ga5ab29968c993423df83c9f1a3d7e685d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga640cbc86ca36c4deb2c197de89dce7d1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structwickr__kdf__result.html">wickr_kdf_result_t</a> *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wickr__crypto__engine.html#ga640cbc86ca36c4deb2c197de89dce7d1">wickr_crypto_kdf_meta</a> )(const <a class="el" href="structwickr__kdf__meta.html">wickr_kdf_meta_t</a> *existing_meta, const <a class="el" href="structwickr__buffer.html">wickr_buffer_t</a> *passphrase)</td></tr>
<tr class="separator:ga640cbc86ca36c4deb2c197de89dce7d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Interface to a set of cryptographic operations used throughout the library. Currently the default implementation of this can be found along with documentation in <a class="el" href="openssl__suite_8h_source.html">openssl_suite.h</a> and <a class="el" href="kdf_8h_source.html">kdf.h</a>. </p>
</div><h2 class="groupheader">Field Documentation</h2>
<a id="a307f7d46b55b1e0a93ce9d9489ba8fc5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a307f7d46b55b1e0a93ce9d9489ba8fc5">&#9670;&nbsp;</a></span>default_cipher</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">wickr_crypto_engine::default_cipher</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>the cipher to use by default for packets, local, and remote information </p>

</div>
</div>
<a id="a2145e35235dc5c5c944f33ea3d2963bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2145e35235dc5c5c944f33ea3d2963bd">&#9670;&nbsp;</a></span>default_curve</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">wickr_crypto_engine::default_curve</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>the curve to use when generating packets, message keys or a new context </p>

</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li>src/wickrcrypto/include/wickrcrypto/<a class="el" href="crypto__engine_8h_source.html">crypto_engine.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.15
</small></address>
</body>
</html>
